Within the field of computing, many scenarios involve a synchronization of the objects of an object set between a local data store and a remote data store. The synchronization may be unidirectional (e.g., altering the remote data store to match the local data store, or vice versa) or bidirectional (e.g., merging changes in the remote data store and the local data store), and/or holistic (e.g., copying entire objects from the local data store to the remote data store) or differential (e.g., copying deltas of the objects from the local data store to a remote device for application to the objects of the remote data store). Such scenarios may be performed with many variations, such on a desired frequency; throttled to conserve bandwidth; and with various types of rules for resolving versioning conflicts.
For example, a bidirectional synchronization may be performed by comparing each object in the local data store and the remote data store, choosing the later-updated of the compared objects, and copying the later-updated object over the earlier-updated object. Each object of the object set may be synchronized in the same manner, until the object sets are identical.